In discrete logic systems, such as programmable logic controller (PLC) systems as well as artificial intelligence computing systems, logic control systems are normally utilized in the implementation and operation of such systems. PLC's are typically connected to industrial equipment such as in assembly lines and machine tools for operation of the equipment according to a stored control program. A PLC implements a user defined logic model by software, which provides programmability and therefore flexibility to allow customization of the control system to a particular situation and to allow modification and reinstallation easily and effectively. For this reason, the PLC is an integral component in the manufacturing support industry, and provides for the development and installation of logic control components in automated systems of all kinds. As the need for flexibility in the manufacturing process grows, the need for a flexible and highly efficient logic controller also grows. One limitation of current PLC design lies in the speed of operation, and it should be recognized that speed improvements in PLC on-line control would have significant influence upon the scope of the applications of PLCs in manufacturing and end-user products.
Programmable logic controller (PLC) systems employ general purpose computer processors to implement logical control schemes in a flexible manner. In general, a PLC system consists of a development system for entry in and simulation of a control scheme or design model, and a control interpreter, which executes the control scheme. The development system is used to produce the control scheme in a model design language familiar to the user. This representation is then translated into a more compact and efficient form and is loaded into memory for the interpreter. Many prior art PLC systems translate the design model into a machine language control program which is executed, or a similarly low level control program language which is interpreted. The programmable control scheme allows the user to customize the control system to a particular situation as needed. PLC's implement hardware sequential machines in software, essentially performing by processor instructions what would be done in parallel by propagation of electrical signals in hardware. Although small scale hardware sequential machines can be optimally designed, PLC systems routinely handle a number of inputs and states which preclude such treatment. Additionally, PLC systems are designed for use by personnel who are not familiar with discrete logic or principles of digital hardware design, and therefore rely upon high level design languages for human interface. An on-line control function is implemented by interpretation or translation of the design language into lower level, procedural languages which are executed by a processor. The primary function of accepted design languages is the graphic portrayal of the state of the logic model used in the on-line control function. Popular design languages for PLC systems include the relay ladder logic diagram, the function chart, and the Petri net. The features of the design language for representing and handling the state of the design model visually are distinct from the on-line control function or real time operation of a logic controller integrated with a particular application.
Most PLC systems are based upon the relay ladder diagram, which provides a simplified model of the physical relay panels formerly being the primary means of implementation of logical control rules. Relay ladder diagram development supports simple, dedicated input entry keyboards and provides easily interpreted displays of control and output states. PLC systems of the prior art, in which the on-line control model is a representation of the ladder diagram or its equivalent in logical functions, have required a scan over the entire model for each cycle of advance of transient events through the model. The scan time in such systems has therefore been proportional to the size of the control model.
Alternatively, development systems based upon finite state machines, such as the Grafcet model, have been created. Grafcet represents either a single Moore finite state machine, or the coordinated operation of such machines to implement a parallel control scheme. The visual representation of the structure and behavior of these systems is known as a function chart. In addition, the Petri net model, which function chart systems are sometimes referred to as, provide a general model which has been used in specification and analysis techniques with limited use as an implementation device. In the present invention, any of these design languages may be realized on-line by translation of the design language descriptions into the clause counter map representation as will be hereinafter described. Alternatively, distinct from design language descriptions, there have been developed state based on-line realizations which avoid processing the whole model on every cycle, but do require polling of the transition logic of active states. An example of a state based implementation is shown in U.S. Pat. No. 4,562,529.
There is various patent literature related generally to PLC design, such as for example, U.S. Pat. No. 4,021,783, wherein a programmable controller utilizes a microcontroller and an associated instruction set for implementation of ladder logic. After a relay ladder diagram has been translated into a control program, the microcontroller will repeatedly execute this program to scan. In this way, the PLC operates on-line by scanning the control program. This patent also suggests a double-buffered input system which records events in isolation from ladder scan in the "synchronous mode" and input events can be allowed to effect contacts during scan in an "asynchronous mode". In U.S. Pat. No. 4,165,534 there is shown a digital control system with Boolean processor, wherein the digital control architecture has a standard 8-bit microprocessor, a 1-bit Boolean co-processor and an 8-bit I/O control interface system. The control program indicates the use of the Boolean form in the logic controller. In U.S. Pat. No. 4,172,289, an I/O feature of the above described system is provided wherein the control language includes instructions which immediately interrogate the current value of a selected input and immediately transmit a selected output. Repetition of the calculation in the control language program for a scan allows multiple interrogations and transmissions for higher frequency control variables. This ability addresses one disadvantage of a system which performs synchronous scan of a control program.
In U.S. Pat. No. 4,914,567, there is shown a design system using visual language which is a PLC design environment for logical asynchronous control based specifically on Grafcet. The system combines high level design and low level implementation facilities. No specific on-line control method is discussed, and it is suggested that the low-level logic specification language for setting and testing state variables may be any commonly used high-level language, but is not specified as an inference mechanism.
It is also found that the use of logical control systems extends to the implementation of artificial intelligence computing systems. In artificial intelligence computing technology, real time control tools may be a necessity. Artificial intelligence and real time control systems share a requirement for efficient deduction systems as embedded modules. In artificial intelligence systems, the concept of a shell system which supports quickly programmed and extended applications has been developed. The incremental, shell-supported development style of rule-based expert system shells is an attractive development mode for real time logical control modules. In the PLC systems mentioned above, the partial control system counterparts to artificial intelligence shells have been developed, but imbeddable logical control interpreters based upon such control systems generally do not offer sufficient performance for real time applications. It should therefore by evident that a logic control system having significant speed improvements may be applicable for real time control and utilized in possible applications for intelligent control.
There are also known knowledge based systems, such as in U.S. Pat. No. 4,754,409, which shows a method of invoking a resident program to answer questions generated in backward chaining questioning in a control program. In U.S. Pat. No. 4,763,277, there is shown a method of determining when a question has been answered in backward chaining of the control algorithm. In these knowledge based systems as well as the PLC applications, a primary functional specification of an on-line algorithm is to generate correct output events corresponding to input events. In rule-based production systems, this function of generating an output event corresponding to input events is known as forward or backward chaining. On-line implementation in such systems also generally involves a large amount of software polling, wherein repeated testing of failed conditions in the control system are performed.
There has also been discussed a graph method associated with inference engines in expert systems as desired in the article entitled "Forward-Chaining versus A Graph Approach As The Inference Engine in Expert Systems" by Richard E. Neapolitan, in PROC. APPLICATIONS OF ARTIFICIAL INTELLIGENCE III, SPIE Volume 635, pages 62-69, April 1986. In this method, the rules of a rule-based expert system are stored in a graph in which each rule is represented by a special count node. This approach envisions a tree of rules, with counters representing the clause states. This approach is limited in that the rule network is strictly a tree, and each fact and rule can belong to any one clause. Additionally, no provision has been set forth for complimented(NOT) clause numbers and clause values are determined by comparing the count with a total number of members in the system which is more time consuming. Three-valued Boolean logic is also not able to be represented in the graph approach. Additionally, only AND clauses are represented in the graph approach, and other clause forms are not envisioned.
In the prior art, implementation by scanning of a logic control system essentially precludes real time operation using such techniques, and requirements of polling can render an on-line implementation scheme unusable for more demanding PLC or similar applications. Other deficiencies are found in that inferencing cannot be carried out in an optimum manner other than on a case-by-case basis, and limits to the flexibility of existing systems are present.